package io.framework.modules.noise.service;

import io.framework.common.page.PageData;
import io.framework.common.service.CrudService;
import io.framework.modules.noise.dto.NoiseFunctionalZoneDTO;
import io.framework.modules.noise.entity.NoiseFunctionalZoneEntity;
import io.framework.modules.noise.vo.NoiseFunctionalZoneVo;

import java.util.List;
import java.util.Map;

/**
 * 功能区噪声
 *
 * @author Gujq email
 * @since 1.0.0 2020-06-02
 */
public interface NoiseFunctionalZoneService extends CrudService<NoiseFunctionalZoneEntity, NoiseFunctionalZoneDTO> {


    /**
     * 分页
     * @param params
     * @return
     */
    PageData<NoiseFunctionalZoneDTO> page(Map<String,Object> params);

    PageData<NoiseFunctionalZoneVo> pageList(Map<String,Object> params);

    /**
     * 验证数据  防止重复上传
     * @param month
     * @return
     */
    Boolean checkData(String month);

    /**
     * 根据时间 month 2020-04 删除数据
     * @param params
     * @return
     */
    int deleteInfoByDate(Map<String,Object> params);

    /**
     * 功能区噪声达标情况  -扇形图
     * @param params
     * @return
     */
    List<Map<String,Object>> pass(Map<String,Object> params);

    /**
     * 达标/超标监测站点
     * @param params
     * @return
     */
    List<Map<String,Object>> passNum(Map<String,Object> params);

    /**
     * 功能区噪声达标情况 - 达标率 柱状图
     * @param params
     * @return
     */
    List<Map<String,Object>> passRate(Map<String,Object> params);

    /**
     * 功能区噪声达标情况 - 类别详情
     * @param params
     * @return
     */
    List<Map<String,Object>> classifyInfo(Map<String,Object> params);


    List<Map<String,Object>> getNoiseInfo(Map<String,Object> params);

    /**
     * 获取最新报告日期
     * @return
     */
    Map<String,Object> getNewCreateDate();

}
